<html>

	<head>
		<title>5.11 Oracle 支持</title>
		<meta charset="utf-8" />
		<meta name="author" content="jfinal,yaolin" />
		<meta name="Keywords" content="" />
		<link rel="stylesheet" type="text/css" href="../../css/global.css" />
	</head>

	<body>
		<h1>5.11 Oracle 支持</h1>
		<p>Oracle 数据库具有一定的特殊性， JFinal 针对这些特殊性进行了一些额外的支持以方便广 大的 Oracle 使用者。 以下是一个完整的 Oracle 配置示例：</p>
		<img src="../../images/ativeRecord/5.11.1.png" />
		<p>由于 Oracle数据库会自动将属性名(字段名)转换成大写，所以需要手动指定主键名为大写， 如： arp.addMaping(“user”, “ID”, User.class)。 如果想让 ActiveRecord 对属性名（ 字段名）的大 小写不敏感可以通过设置 CaseInsensitiveContainerFactory 来达到，有了这个设置，则 arp.addMaping(“user”, “ID”, User.class)不再需要了。</p>
		<p>另外， Oracle 并未直接支持自增主键， JFinal 为此提供了便捷的解决方案。 要让 Oracle 支 持自动主键主要分为两步：一是创建序列，二是在 model 中使用这个序列，具体办法如下：</p>
		<p>1：通过如下办法创建序列，本例中序列名为： MY_SEQ</p>
		<img src="../../images/ativeRecord/5.11.2.png" />
		<p>2： 在 YourModel.set(…)中使用上面创建的序列</p>
		<img src="../../images/ativeRecord/5.11.3.png" />
		<p>序列的使用很简单，只需要 yourModel.set(主键名, 序列名<span class="red"> + “.nextval”</span>)就可以了。<span class="red"> 特别注意这里的 “.nextval” 后缀一定要是小写， OracleDialect 对该值的大小写敏感。</span></p>
		<p>注意： Oracle 下分页排序 Sql 语句必须满足 2 个条件：</p>
		<ul>
			<li>Sql 语句中必须有排序条件；</li>
			<li>排序条件如果没有唯一性，那么必须在后边跟上一个唯一性的条件，比如主键</li>
		</ul>
		<p>
			相关博文： http://database.51cto.com/art/201010/231533.htm
		</p>
		<p>
			相关反馈： http://www.jfinal.com/feedback/64#replyContent
		</p>
	</body>

</html>